package com.xhh.nphm.web.controller.system;

import com.xhh.nphm.common.core.controller.BaseController;
import com.xhh.nphm.common.core.domain.AjaxResult;
import com.xhh.nphm.common.core.page.TableDataInfo;
import com.xhh.nphm.system.domain.BSortModel;
import com.xhh.nphm.system.domain.TworkFormBaseEty;
import com.xhh.nphm.system.service.BSortModelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import java.util.Arrays;
import java.util.List;

@RestController
@RequestMapping("/system/mTelRcd/cmnFile")
public class MTelRcdCmnFileController extends BaseController {
    private final String prefix = "system/mTelRcd/cmnFile";

    @Autowired
    private BSortModelService bSortModelService;

    /**
     * 进入工单模板管理列表页面
     * @return 视图
     */
    @GetMapping("/tSortModel")
    public ModelAndView tSortModel() {
        return new ModelAndView(prefix + "/tSortModel");
    }

    /**
     * 加载工单模板列表数据
     * @param sortModel 封装查询条件
     * @return 列表数据
     */
    @PostMapping("/tSortModelJson")
    public TableDataInfo tSortModelJson(BSortModel sortModel) {
        startPage();
        List<BSortModel> list = bSortModelService.tSortModelJson(sortModel);
        return getDataTable(list);
    }

    /**
     * 进入新增工单模板页面
     * @return 视图
     */
    @GetMapping("/tSortModelAdd")
    public ModelAndView tSortModelAdd() {
        return new ModelAndView(prefix + "/tSortModelAdd");
    }

    /**
     * 新增工单模板
     *
     * @return 响应结果
     */
    @PostMapping("/tSortModelAdd")
    public AjaxResult tSortModelAdd(BSortModel bSortModel) {
        return toAjax(bSortModelService.saveOrUpdate(bSortModel));
    }

    /**
     * 进入修改工单模板页面
     * @return 视图
     */
    @GetMapping("/tSortModelEdit/{id}")
    public ModelAndView tSortModelEdit(@PathVariable("id")Integer id,ModelMap map) {
        map.put("sortModel",bSortModelService.selectById(id));
        return new ModelAndView(prefix + "/tSortModelEdit");
    }

    /**
     * 修改工单模板
     *
     * @return 响应结果
     */
    @PostMapping("/tSortModelEdit")
    public AjaxResult tSortModelEdit(BSortModel bSortModel) {
        return toAjax(bSortModelService.saveOrUpdate(bSortModel));
    }

    /**
     * 删除工单模板
     *
     * @return 响应结果
     */
    @PostMapping("/tSortModelRemove")
    public AjaxResult tSortModelRemove(String ids) {
        return toAjax(bSortModelService.removeByIds(Arrays.asList(ids.split(","))));
    }

    /**
     * 查询工单模板内容
     * @param sortModelName 工单模板名称
     * @return 工单模板内容
     */
    @PostMapping("/findSortModel")
    public AjaxResult findSortModel(String sortModelName){
        AjaxResult ajaxResult = AjaxResult.warn("未查询到该工单模板",sortModelName);
        String sortModel = bSortModelService.findSortModel(sortModelName);
        if (sortModel != null) {
            ajaxResult = AjaxResult.success("查询到该工单模板",sortModel);
        }
        return ajaxResult;
    }

    /**
     * 验证模板名称是否重复
     */
    @PostMapping("/validateSMName")
    @ResponseBody
    public Boolean hasSMName(String oldName,String newName,String act){
        //新增
        boolean flag = false;
        if ("add".equals(act)){
            flag = bSortModelService.hasSMName(newName) == 0;
        }else {
            if (oldName.equals(newName)) {
                flag = true;
            }else {
                flag = bSortModelService.hasSMName(newName) != 1;
            }
        }
        return flag;
    }

}
